package com.jack.design_patterns.structural.bridge;

/**
 * 抽象手机类：手机有各种销售渠道，价格不一样
 */
public abstract class AbstractPhone {

    /**
     * 分类渠道(桥接的关注点)
     *      1.桥接在此...设计期间都得想好
     *      2.桥接的核心思想：真正会引起此类变化的一个维度直接抽取出来，通过组合的方式桥接起来
     *      3.桥接+适配器...
     */
    AbstractSale sale;

    /**
     * 如果这么写需要多个实现，违反开闭原则
     * @return
     */
//    abstract double getPrice();

    /**
     * 得到当前手机的信息
     * @return
     */
    abstract String getPhone();

    public void setSale(AbstractSale sale) {
        this.sale = sale;
    }
}
